/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Prefadoros.optiki = {
	optiki: null,

	init: function() {
		if (Prefadoros.optiki.optiki !== null) return;

		var tel, w, wp;

		tel = $('<div>').css({
			display: 'inline-block',
			textAlign: 'center',
			visibility: 'hidden',
		});

		$('#optiki').on('click', function(e) {
			e.stopPropagation();
			e.preventDefault();
			Prefadoros.optiki.alagi();
			Prefadoros.input.apiko();
		}).append(tel);

		tel.text('Καφενείο');
		w = tel.outerWidth();

		tel.text('Παρτίδα');
		wp = tel.outerWidth();

		if (wp > w) w = wp;
		w += 'px';

		tel.empty().css({
			minWidth: w,
			maxWidth: w,
			visibility: 'visible',
		});

		Prefadoros.optiki.alagi(Prefadoros.ego.sinedria.isTrapezi() ? 'Παρτίδα' : 'Καφενείο');
	},

	alagi: function(optiki) {
		var ikitpo;
		if (optiki === undefined) optiki = (Prefadoros.optiki.optiki == 'Καφενείο' ? 'Παρτίδα' : 'Καφενείο');
		else if ((Prefadoros.optiki.optiki == optiki) && (!Prefadoros.cpanel.flags.chat)) return;

		Prefadoros.optiki.optiki = optiki;
		if (Prefadoros.cpanel.flags.chat) {
			Prefadoros.cpanel.flags.chat = false;
			Prefadoros.cpanel.toolList.chatOff.a();
		}

		if (!Prefadoros.optiki.fullView) {
			if (optiki == 'Καφενείο') {
				$('#pexnidiColumn,#sizitisiTrapeziColumn').css({display: 'none'});
				$('#kafenioColumn,#sizitisiKafenioColumn').css({
					opacity: 0,
					display: 'table-cell',
				}).fadeTo(10, 1);
			}
			else {
				$('#kafenioColumn,#sizitisiKafenioColumn').css({display: 'none'});
				$('#pexnidiColumn,#sizitisiTrapeziColumn').css({
					opacity: 0,
					display: 'table-cell',
				}).fadeTo(10, 1);
			}
		}

		$('#optiki').children().akrivosEna().text(optiki == 'Καφενείο' ? 'Παρτίδα' : 'Καφενείο');
	},

	kafenio: function() {
		Prefadoros.optiki.alagi('Καφενείο');
	},

	partida: function() {
		Prefadoros.optiki.alagi('Παρτίδα');
	},

	isKafenio: function() {
		return(Prefadoros.optiki.optiki == 'Καφενείο');
	},

	isPartida: function() {
		return(Prefadoros.optiki.optiki == 'Παρτίδα');
	},

	fullView: true,

	protiFora: true,

	viewSetup: function(alagi) {
		var a1, a2;
		if (alagi) Prefadoros.optiki.fullView = !Prefadoros.optiki.fullView;

		if (Prefadoros.optiki.fullView) {
			if (Prefadoros.optiki.protiFora) {
				Prefadoros.optiki.protiFora = false;
				$('body,#ofelimo').css({width: '1670px'});
				$(Prefadoros.optiki.optiki == 'Καφενείο' ?  '#pexnidiColumn' : '#kafenioColumn').css({
					display: 'table-cell',
					opacity: 1,
					width: '570px',
				});
				$(Prefadoros.optiki.optiki == 'Καφενείο' ?
					'#sizitisiTrapeziColumn' : '#sizitisiKafenioColumn').
					css({display: 'table-cell'});
			}
			else {
				a1 = $('body,#ofelimo').stop().animate({width: '1670px'});
				a2 = $(Prefadoros.optiki.optiki == 'Καφενείο' ?  '#pexnidiColumn' : '#kafenioColumn').
				stop().css({
					opacity: 0,
					width: 0,
					display: 'table-cell',
				}).animate({
					opacity: 1,
					width: '570px',
				});

				$.when(a1, a2).done(function() {
					$(Prefadoros.optiki.optiki == 'Καφενείο' ?
						'#sizitisiTrapeziColumn' : '#sizitisiKafenioColumn').
					css({display: 'table-cell'});
				});
			}
		}
		else {
			if (Prefadoros.optiki.protiFora) {
				Prefadoros.optiki.protiFora = false;
				$('body,#ofelimo').css({width: '1100px'});
				$(Prefadoros.optiki.optiki == 'Καφενείο' ? '#pexnidiColumn' : '#kafenioColumn').css({
					display: 'none',
					width: '570px',
				});
				$(Prefadoros.optiki.optiki == 'Καφενείο' ?
					'#sizitisiTrapeziColumn' : '#sizitisiKafenioColumn').
					css({display: 'none'});
			}
			else {
				a1 = $('body,#ofelimo').stop().animate({width: '1100px'});
				a2 = $(Prefadoros.optiki.optiki == 'Καφενείο' ? '#pexnidiColumn' : '#kafenioColumn').
				stop().animate({
					opacity: 0,
					width: 0,
				}, function() {
					$(this).css({
						display: 'none',
						width: '570px',
					});
				});

				$.when(a1, a2).done(function() {
					$(Prefadoros.optiki.optiki == 'Καφενείο' ?
						'#sizitisiTrapeziColumn' : '#sizitisiKafenioColumn').
					css({display: 'none'});
				});
			}
		}
	}
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

// Υπάρχουν δύο input fields στη βασική σελίδα. By default εστιάζουμε στο
// πεδίο σχολίων, μπορεί όμως ο χρήστης να εστιάσει στο πεδίο αναζήτησης
// φίλων. Η property "id" περιέχει το id του τρέχοντος input πεδίου ώστε
// να επανεστιάζει εκεί το πρόγραμμα κάθε φορά που τίθεται σε κατάσταση
// ετοιμότητας.

Prefadoros.input = {
	id: 'sizitisiInput',

	set: function(x) {
		Prefadoros.input.id = x;
	},

	apiko: function(e) {
		if (e) e.stopPropagation();
		$('#' + Prefadoros.input.id).focus();
	},
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

// Ό,τι έχει να κάνει με τις περιοχές προσκλήσεων, σχέσεων/αναζητήσεων και
// συζητήσεων εντάσσεται στο singleton "pss".

Prefadoros.pss = {
	// Θα χρειαστούμε επανειλημμένως κάποια στοιχεία στιλ κατά την κλωνοποίηση
	// των micropanel αυξομείωσης μεγέθους περιοχών.

	setup: function() {
		var attrs = Client.getCssTimi('pssAfxomiosiKlonos', ['paddingTop', 'paddingLeft']);

		this.klonosPaddingTop = parseInt(attrs['paddingTop']);
		if (isNaN(this.klonosPaddingTop)) this.klonosPaddingTop = 0;

		this.klonosPaddingLeft = parseInt(attrs['paddingLeft']);
		if (isNaN(this.klonosPaddingLeft)) this.klonosPaddingLeft = 0;
	},

	// Η property "boi" είναι το ύψος μιας (οποιασδήποτε) εκ των τριών
	// pss περιοχών και θα υπολογιστεί κατά το αρχικό setup τής σελίδας.

	boi: 0,

	// Το μέγεθος κάθε μιας εκ των τριών περιοχών παίρνει τις τιμές
	// 0 (δεν εμφανίζεται), 1 (κανονικό), 2 (μεγάλο), 3(καθολικό).
	// Αρχικά και οι τρεις περιοχές έχουν μέγεθος 1 καταλαμβάνοντας
	// περίπου το 1/3 του συνολικού ύψους. Κατόπιν μπορούμε να
	// χρησιμοποιήσουμε τα εικονίδια αυξομείωσης ύψους και να
	// μεγαλώσουμε κάποιες περιοχές σε βάρος κάποιων άλλων, ή να
	// μειώσουμε κάποιες περιοχές προς όφελος κάποιων άλλων.

	size: {
		prosklisi: 1,
		sxesi: 1,
		sizitisi: 1,
	},

	afxisi: function(img, pss, klonos) {
		var alo1, alo2, miosi;

		Prefadoros.input.apiko();
		if (this.size[pss] > 2) return Client.sound.tap();

		switch (pss) {
		case 'sizitisi': alo1 = 'prosklisi'; alo2 = 'sxesi'; break;
		case 'sxesi': alo1 = 'prosklisi'; alo2 = 'sizitisi'; break;
		case 'prosklisi': alo1 = 'sxesi'; alo2 = 'sizitisi'; break;
		default: return Client.sound.error();
		}

		if (this.size[alo1] == 3) miosi = alo1;
		else if (this.size[alo2] == 3) miosi = alo2;
		else if (this.size[alo1] == 2) miosi = alo1;
		else if (this.size[alo2] == 2) miosi = alo2;
		else if (this.size[alo1] == 1) miosi = alo1;
		else if (this.size[alo2] == 1) miosi = alo2;
		else return Client.sound.error();

		this.ipsos(pss, miosi).klonos(img);
	},

	miosi: function(img, pss, klonos) {
		var alo1, alo2, afxisi;

		Prefadoros.input.apiko();
		if (this.size[pss] < 1) return Client.sound.tap();

		switch (pss) {
		case 'sizitisi': alo1 = 'sxesi'; alo2 = 'prosklisi'; break;
		case 'sxesi': alo1 = 'sizitisi'; alo2 = 'prosklisi'; break;
		case 'prosklisi': alo1 = 'sizitisi'; alo2 = 'sxesi'; break;
		default: return Client.sound.error();
		}

		if (this.size[alo1] == 0) afxisi = alo1;
		else if (this.size[alo2] == 0) afxisi = alo2;
		else if (this.size[alo1] == 1) afxisi = alo1;
		else if (this.size[alo2] == 1) afxisi = alo2;
		else if (this.size[alo1] == 2) afxisi = alo1;
		else if (this.size[alo2] == 2) afxisi = alo2;
		else return Client.sound.error();

		this.ipsos(afxisi, pss).klonos(img);
	},

	ipsos: function(afxisi, miosi) {
		var pano, kato, dh;

		pano = afxisi == 'sizitisi' ? $('#sizitisiKafenio,#sizitisiTrapezi') : $('#' + afxisi + 'Area');
		kato = miosi == 'sizitisi' ? $('#sizitisiKafenio,#sizitisiTrapezi') : $('#' + miosi + 'Area');

		kato.stop(false, true);
		pano.stop(false, true);

		// Αν κατά τη μείωση υπάρχει τμήμα με μηδενικό ύψος και αυτό έχει
		// κάποιο υπόλοιπο το εκμηδενίζω.

		dh = kato.outerHeight() - this.boi;
		dh = ((dh > 0) && (dh < 20)) ? this.boi + dh : this.boi;

		kato.animate({
			height: '-=' + dh + 'px',
			maxHeight: '-=' + dh + 'px',
		}, function() {
			kato.scrollKato();
		});

		pano.animate({
			height: '+=' + dh + 'px',
			maxHeight: '+=' + dh + 'px',
		}, function() {
			pano.scrollKato();
		});

		this.size[afxisi]++;
		this.size[miosi]--;

		return this;
	},

	// Η μέθοδος "klonos" δημιουργεί ένα micropanel αυξομείωσης παρόμοιο
	// με το αρχικό, μόνο που αυτό είναι σταθερό και δεν κινείται μαζί
	// την αυξομείωση της περιοχής που αλλάζει, ώστε να μπορεί ο χρήστης
	// να αυξομειώνει την περιοχή χωρίς να ακολουθεί το αρχικό panel το
	// οποίο ακολουθεί την κεφαλίδα της αυξομειούμενης περιοχής.

	klonos: function(img) {
		var papos, ofpos, hsp;

		// Ελέγχω αν πρόκειται για ήδη κλωνοποιημένο micropanel.

		hsp = img.parents('.pssHeaderSizePanel').akrivosEna();
		if (hsp.hasClass('pssAfxomiosiKlonos')) return;

		// Το κλωνοποιημένο micropanel θα προστεθεί στο "#ofelimo"
		// με absolute position στην ίδια ακριβώς θέση που βρίσκεται
		// το αρχικό micropanel.

		papos = hsp.offset();
		ofpos = $('#ofelimo').offset();

		hsp.clone().addClass('pssAfxomiosiKlonos').css({
			top: papos.top - ofpos.top - this.klonosPaddingTop,
			left: papos.left - ofpos.left - this.klonosPaddingLeft,
		}).on('mouseleave', function(e) {
			$(this).remove();
		}).appendTo($('#ofelimo'));
	},

	// Τα input πεδία αναζήτησης και συζήτησης έχουν πλάτος ανάλογο
	// με το συνολικό πλάτος της στήλης pss. Το πλάτος τής στήλης
	// pss αυξομειώνεται ανάλογα με το αν υπάρχουν ή όχι emoticons
	// και με το αν είμαστε σε chat mode ή όχι.

	aploma: function() {
		var pss, w;

		pss = $('#pss').akrivosEna();
		w = pss.outerWidth();
		if (w < 480) $('.pssHeaderInput').stop().animate({width: '190px'});
		else if (w < 500) $('.pssHeaderInput').stop().animate({width: '230px'});
		else $('.pssHeaderInput').stop().animate({width: '430px'});
	},

	// Η μέθοδος "mazema" φέρνει στο ελάχιστο πλάτος τα input πεδία
	// αναζήτησης και συζήτησης.

	mazema: function() {
		$('.pssHeaderInput').stop().animate({width: '190px'});
	},
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

// Ακολουθούν δομές και μέθοδοι που σχετίζονται με τα emoticons. Τα emoticons
// προβάλλονται σε στήλη δεξιά της στήλης pss και παρέχονται σε σετάκια τα
// οποία ο χρήστης μπορεί να εναλλάσσει κατά το δοκούν. Όλα τα σετάκια εκτός
// από το πρώτο (default) παρέχουν στο χρήστη τη δυνατότητα επαναφοράς στο
// αρχικό σετ, μέσω των εικονιδίων επαναφοράς, ακριβώς όπως συμβαίνει και με
// το control panel.

Prefadoros.emoticon = {
	trexon: 0,

	set: [
		[
			'apogoitefsi.png',
			'xalia.png',
			'klaps.png',
			'klama.png',
			'tromos.png',
			'thimos.png',
			'ekplixi.png',
			'klinoMati.png',
			'xamogelo.png',
			'sardonio.png',
			'kardoules.png'
		],
		[
			'kardia.png',
			'xara.png',
			'tomata.png',
			'gelaki.png',
			'kokinizo.png',
			'kamenos.png',
			'mati.png',
			'glosa.png',
			'keratas.png',
			'what.png',
			'devil.png'
		],
		[
			'boss.png',
			'smile.png',
			'look.png',
			'haha.png',
			'ops.png',
			'misdoubt.png',
			'doubt.png',
			'pudency.png',
			'beated.png',
			'sad.png',
			'ah.png'
		],

		[
			'angry.png',
			'ft.png',
			'eek.png',
			'razz.png',
			'shame.png',
			'lovely.png',
			'sad.png',
			'smile.png',
			'lol.png',
			'shuai.png',
			'sweat.png'
		],
		[
			'matia.gif',
			'binelikia.gif',
			'kapikia.gif',
			'mati.gif',
			'bouketo.gif',
			'kakos.gif',
			'plastis.gif',
			'malakia.gif',
			'gelio.gif',
			'zalada.gif',
			'oxi.gif',
			'tromos.gif'
		],
		[
			'hi.gif',
			'koroidia.gif',
			'matakia.gif',
			'toulipa.gif',
			'ipopto.gif',
			'les.gif',
			'klaps.gif',
			'ekplixi.gif',
			'tromos.gif',
			'binelikia.gif',
			'ipnos.gif'
		],
		[
			'gelio.png',
			'glosa.png',
			'kokinisma.png',
			'gelaki.png',
			'mataki.png',
			'mousitsa.png',
			'apogoitefsi.png',
			'zimia.png',
			'stenoxoria.png',
			'eros.png',
			'gialiko.png',
		],
	],

	dixeSet: function(s) {
		var html, i;

		if (s === undefined) s = Prefadoros.emoticon.trexon;
		html = Prefadoros.emoticon.enalagiHTML();
		if (s != 0) html += Prefadoros.emoticon.basikoHTML();
		for (i = 0; i < Prefadoros.emoticon.set[s].length; i++) {
			html += Prefadoros.emoticon.iconHTML(s, i);
		}
		if (s != 0) html += Prefadoros.emoticon.basikoHTML(180);
		html += Prefadoros.emoticon.hideHTML();

		$('#emoticon').html(html).find('img').addClass('iconButton');
		Prefadoros.emoticon.trexon = s;
	},

	enalagiHTML: function() {
		return '<img src="images/cpanel/4Balls.png" title="Εναλλαγή ομάδας emoticons" ' +
			'class="emoticonIcon" onclick="Prefadoros.emoticon.enalagi();" />';
	},

	basikoHTML: function(strofi) {
		var html = '';
		html += '<img src="images/misc/mazema.png" title="Βασική ομάδα emoticons" class="emoticonIcon';
		if (strofi) { html += ' strofi' + strofi; }
		html += '" onclick="Prefadoros.emoticon.dixeSet(0);" />';
		return html;
	},

	hideHTML: function() {
		return '<img src="images/emoticons/set0/alien.png" title="Απόκρυψη emoticons" class="emoticonIcon" ' +
			'onclick="Prefadoros.cpanel.toolList.emoticonHide.a(document.getElementById(\'CPemoticonHide\'));" />';
	},

	iconHTML: function(s, i) {
		return '<img class="emoticonIcon" src="images/emoticons/set' + s + '/' + Prefadoros.emoticon.set[s][i] +
			'" onclick="Prefadoros.emoticon.apostoli(' + s + ', ' + i + ');" />';
	},

	enalagi: function() {
		Prefadoros.emoticon.trexon = (Prefadoros.emoticon.trexon + 1) % Prefadoros.emoticon.set.length;
		Prefadoros.emoticon.dixeSet();
	},

	apostoli: function(s, i) {
		var x;

		x = Prefadoros.sizitisi.inputJQL.val() + '^' + s + ':' + i + '^ ';
		Prefadoros.sizitisi.inputJQL.val(x).trigger('keyup');
	},
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Prefadoros.motto = {
	setup: function() {
		$('#motto').siromeno().pineza(function(div) {
			$('#CPmotto').working('misc/X.png');
			div.stop().fadeOut(200, function() {
				$('#CPmotto').working('cpanel/kafedaki.png');
			});
		}).css({
			top: globals.random(100, 200) + 'px',
			left: globals.random(100, 200) + 'px',
		});
	},

	dixe: function(motto) {
		var html, css;

		if (!Prefadoros.motto.paraskinio) return Prefadoros.motto.getParaskinio(motto, Prefadoros.motto);

		html = '';
		if (motto.t) html += '<div class="mottoText">' + motto.t + '</div>';
		if (motto.a) html += '<div class="mottoAuthor">' + motto.a + '</div>';

		css = {display: 'inline'};
		if (Prefadoros.motto.paraskinio.length > 0)
			css['background-image'] = 'url(motto/paraskinio/' + Prefadoros.motto.
				paraskinio[globals.random(Prefadoros.motto.paraskinio.length - 1)] + ')';
		$('#mottoContent').html(html).parent().anadisi().css(css);
	},

	getParaskinio: function(motto, mottoTip) {
		Client.ajax('motto/getParaskinio', function(rsp) {
			try {
				eval('Prefadoros.motto.paraskinio = [ ' + rsp + '];');
			} catch(e) {
				Prefadoros.motto.paraskinio = [];
			}
			mottoTip.dixe(motto);
		});
	}
};

Prefadoros.tip = {
	setup: function() {
		$('#tip').siromeno().pineza(function(div) {
			$('#CPtip').working('misc/X.png');
			div.stop().fadeOut(200, function() {
				$('#CPtip').working('cpanel/lamp.png');
			});
		}).css({
			top: globals.random(200, 300) + 'px',
			left: globals.random(50, 150) + 'px',
		});
	},

	dixe: function(motto) {
		var html = '';
		if (motto.t) html += '<div class="mottoText">' + motto.t + '</div>';
		if (motto.a) html += '<div class="mottoAuthor">' + motto.a + '</div>';
		$('#tipContent').html(html).parent().anadisi().css({display: 'inline'});
	}
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Prefadoros.external = {
	donate: function() {
		if (Client.oxiPektis()) return;
		setTimeout(function() {
			$('#donate').html('<form target="_blank" ' +
				'action="https://www.paypal.com/cgi-bin/webscr" method="post">' +
				'<input type="hidden" name="cmd" value="_s-xclick">' +
				'<input type="hidden" name="hosted_button_id" value="7UGXKWGRM5TXU">' +
				'<input type="image" src="' + Client.server + 'images/external/donate.gif" ' +
					'border="0" name="submit" title="Buy me a beer!" ' +
					'style="background-color: transparent;" ' +
					'alt="PayPal - The safer, easier way to pay online!">' +
				'<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" ' +
					'width="1" height="1" />' +
				'</form>'
			);
		}, 200);
	},

	googlePlus: function() {
		if (Client.server.match(/http:\/\/localhost/)) return;
		if (Client.server.match(/http:\/\/127\.0\.0\.1/)) return;
		setTimeout(function() {
			var po, s;
			try {
				$('#googlePlus').html('<g:plusone size="medium" style="padding-bottom: 0.1cm;"></g:plusone>');
				window.___gcfg = {lang: 'el'};
				po = document.createElement('script');
				po.type = 'text/javascript';
				po.async = true;
				po.src = 'https://apis.google.com/js/plusone.js';
				s = document.getElementsByTagName('script')[0];
				s.parentNode.insertBefore(po, s);
			} catch(e) {
				$('#googlePlus').html('ERROR');
			}
		}, 10);
	},
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Prefadoros.setup = function() {
	var ofh, phh, szh;

	Prefadoros.optiki.viewSetup();
	ofh = $('#ofelimo').outerHeight();
	$('.stili').css({
		height: ofh + 'px',
		maxHeight: ofh + 'px',
	});

	//////////////////////////////////////////////////////////////////////////
	// Τακτοποιούμε τις επικεφαλίδες των pss περιοχών.

	$('.pssHeaderPanel,.pssHeaderSizePanel').addClass('selectOff');

	//////////////////////////////////////////////////////////////////////////
	// Ισοζυγίζουμε καθ' ύψος της περιοχές του pss.

	phh = $('.pssHeader').outerHeight();
	Prefadoros.pss.boi = parseInt((ofh - (3 * phh)) / 3);
	$('#prosklisiArea,#sxesiArea').css({
		height: Prefadoros.pss.boi + 'px',
		maxHeight: Prefadoros.pss.boi + 'px',
	});

	szh = ofh - (3 * phh) - $('#prosklisiArea').outerHeight() - $('#sxesiArea').outerHeight();
	$('#sizitisiKafenio,#sizitisiTrapezi').css({
		height: szh + 'px',
		maxHeight: szh + 'px',
	});

	//////////////////////////////////////////////////////////////////////////

	$('.pssHeaderIcon').addClass('iconButton').hover(function() {
		$(this).addClass('iconButtonOplisate');
	}, function() {
		$(this).removeClass('iconButtonOplisate');
	});

	//////////////////////////////////////////////////////////////////////////

	$('#ofelimo').css({
		visibility: 'visible',
	});

	$('.pssHeaderData').addClass('kimeno');

	//////////////////////////////////////////////////////////////////////////

	$(document).on('mouseenter', '.pektisIcon,.pektisAxiomaIcon', function(e) {
		e.stopPropagation();
		$(this).stop().fadeTo(200, 1).find('.pektisOnoma').addClass('pektisOnomaEntono');
	}).on('mouseleave', '.pektisIcon', function(e) {
		e.stopPropagation();
		$(this).stop().fadeTo(200, 0).find('.pektisOnoma').removeClass('pektisOnomaEntono');
	}).on('mouseleave', '.pektisAxiomaIcon', function(e) {
		e.stopPropagation();
		$(this).find('.pektisOnoma').removeClass('pektisOnomaEntono');
	});

	//////////////////////////////////////////////////////////////////////////

	$(document).on('mouseenter', '.trapeziData', function(e) {
		var kodikos, kasa, ipolipo;

		e.stopPropagation();
		$(this).addClass('trapeziDataEpilogi');
		kodikos = $(this).find('.trapeziDataKodikos').text();
		kasa = $(this).find('.trapeziDataKasa').text();
		ipolipo = $(this).find('.trapeziDataIpolipo').text();
		Client.fyi.kato('Τραπέζι <span class="ble entono">' + kodikos + '</span>, ' +
			'κάσα <span class="ble entono">' + kasa + '</span>, ' +
			'υπόλοιπο <span class="ble entono">' + ipolipo + '</span>');
	}).on('mouseleave', '.trapeziData', function(e) {
		e.stopPropagation();
		$(this).removeClass('trapeziDataEpilogi');
		Client.fyi.kato();
	});

	//////////////////////////////////////////////////////////////////////////

	$(document).on('mouseenter', '.prosklisi', function() {
		$(this).addClass('prosklisiEpilogi');
	}).on('mouseleave', '.prosklisi', function() {
		$(this).removeClass('prosklisiEpilogi');
	});

	//////////////////////////////////////////////////////////////////////////

	$(document).on('mouseenter', '.epilogi', function() {
		$(this).addClass('epilogiOplisate');
	}).on('mouseleave', '.epilogi', function() {
		$(this).removeClass('epilogiOplisate');
	});

	//////////////////////////////////////////////////////////////////////////

	$('.tsoxaPektisPhoto').on('error', function() {
		$(this).attr({src: Client.server + 'images/misc/noImage.png'});
	});

	//////////////////////////////////////////////////////////////////////////

	$('#miaPrefa').find('.epilogi').on('click', function(e) {
		e.stopPropagation();
		Client.node('miaPrefa', function(rsp) {
			Client.fyi.spano(rsp);
			if (rsp) return;
			$('#miaPrefa').stop().animate({maxHeight: 0});
		});
	});

	//////////////////////////////////////////////////////////////////////////

	$(document).on('click', function(e) {
		Prefadoros.input.apiko();
	});

	//////////////////////////////////////////////////////////////////////////

	Prefadoros.emoticon.dixeSet();
	Prefadoros.motto.setup();
	Prefadoros.tip.setup();
	Prefadoros.sizitisi.setup();
	Prefadoros.pss.setup();
	setTimeout(function() {
		Prefadoros.input.apiko();
	}, 10);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

// Με την function "peripolos" δρομολογούμε διάφορες εργασίες που επιτελούνται
// σε περιοδική βάση.

Prefadoros.peripolos = function() {
	setInterval(function() { Skiniko.pektisCleanup(); }, 3600000);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Prefadoros.unloadFired = false;

Prefadoros.unload = function() {
	if (Prefadoros.unloadFired) return;

	Prefadoros.unloadFired = true;
	if (Client.paraskinioWindow) Client.paraskinioWindow.close();
	if (Prefadoros.cpanel.flags.funchat) Prefadoros.cpanel.flags.funchat.close();
	Pektis.iconAction.iplocatorClose();
}

$(document).ready(function() {
	$(window).on('beforeunload', Prefadoros.unload);
	$(window).on('unload', Prefadoros.unload);
	Prefadoros.external.donate();
	Prefadoros.external.googlePlus();
	Prefadoros.setup();
	Prefadoros.ego.setup();
	Prefadoros.feredata.ekinisi();
	Prefadoros.peripolos();
});
